//计算器 可进行功能升级

jsetc lv 2024/7/1 17:51:28


jsetc lv 2024/7/1 18:14:06


jsetc lv 2024/7/1 18:15:31
stable_partition 实现原理       
自己实现rotate算法
全排列相关算法原理

 李龙 2024/7/1 19:10:18


安大 陈志发 2024/7/1 23:31:07


安大 陈志发 2024/7/1 23:31:12


安大 陈志发 2024/7/1 23:31:13


屈阳 2024/7/2 23:42:49


安大 陈志发邀请Nayami加入了本群。

你和Nayami有2个共同好友，点击添加好友。

苏嵌交付中心邀请Hellbat加入了本群。

杨春磊 2024/7/3 23:10:31


杨春磊 2024/7/3 23:10:32


张妍初 2024/7/4 23:16:45


jsetc-lg 2024/7/5 8:57:47
老梁 邀请您参加腾讯会议
会议主题：老梁的快速会议
会议时间：2024/07/05 08:57-09:57 (GMT+08:00) 中国标准时间 - 北京

点击链接直接加入会议：
https://meeting.tencent.com/dm/y2pMIZC6HXvP

#腾讯会议：272-447-974

复制该信息，打开手机腾讯会议即可参与

jsetc-lg 2024/7/5 14:00:13
老梁 邀请您参加腾讯会议
会议主题：老梁的快速会议
会议时间：2024/07/05 13:59-14:59 (GMT+08:00) 中国标准时间 - 北京

点击链接直接加入会议：
https://meeting.tencent.com/dm/dUaklYDN2pjr

#腾讯会议：479-838-131

复制该信息，打开手机腾讯会议即可参与

jsetc-lg 2024/7/5 14:47:38


jsetc-lg 2024/7/5 14:47:52


jsetc-lg 2024/7/5 15:42:36
#include <iostream>
#include <vector>
using namespace std;
//按值传递  按地址传递  按引用传递

int test(int &&temp)
{
    cout << "&&:" << temp << endl;
    return 0;
}

template <typename T>
//void func(T t)  //按值传递:变量丢cv属性，指针保存cv,引用丢弃并丢cv属性
//void func(T *t) //按指针传递：保存cv属性
//void func(T &t) //按引用传递：保存变量和引用的cv属性
void func(T &&t) //万能引用（未定义引用）: 保存cv属性
//引用折叠：&& && ---&&   & &&--&
{
    //test(std::move(t));
    test(std::forward<int &&>(t));
}


int main(int argc, char **argv)
{
    int num = 10;
    const int count = 20;
    int *p = &num;
    const int *pcount = &count;

    int &lnum = num;
    const int &lcount = count;
    
    func(10);
    //func(num); // int  :   T -->int
    //func(count); //const int;  T--->?
    //func(p);//int *:  T -->int *
    //func(pcount);//const int * T-->? 
    //func(lnum);
    //func(lcount);    
    return 0;
}

jsetc-lg 2024/7/5 15:42:45
https://cppinsights.io/

jsetc-lg 2024/7/5 15:46:38


jsetc-lg 2024/7/5 15:46:38


jsetc-lg 2024/7/5 15:46:38


jsetc-lg 2024/7/5 15:46:39


jsetc-lg 2024/7/5 15:46:39


jsetc-lg 2024/7/5 15:46:40


jsetc-lg 2024/7/5 15:46:45


jsetc-lg 2024/7/5 17:04:09


jsetc-lg 2024/7/5 17:04:44


jsetc-lg 2024/7/5 17:54:31


苏嵌交付中心 2024/7/6 17:01:45


苏嵌林老师 2024/7/6 21:28:03
感谢王老师，张老师及时编辑生活健康指南

同学们晚上好，目前收到上周统计信息，已经有2个同学因为饮用一些冰镇类饮料，诱发肠胃炎，昨晚甚至于有同学紧急入院一个晚上挂水，今天也有同学因此中招，有一个班级出现了3名同学，因为晚上空调吹得太过了，今天白天一直在拉肚子。。。

过去几年来，我们每年暑假都发现这些问题，总结来看，第一，晚上休息、白天在教室都是空调在运转。所以，空调时间太长，而且空调温度过底，诱发了肠胃炎，诱发了感冒，而且因为空调引发的感冒特别难好，还传染了整个教室的同学
第二就是乱吃冷饮，乱点外卖，诱发肠胃炎
所以，我们提议大家，第一，每天要锻炼一次身体，出汗，必须大量出汗，才能不感冒，才能抵抗力强
第二，在宿舍睡觉肯定要有空调，但是在教室，我们要求大家轮流值日，每天在休息期间，关闭空调，打开窗户，请记得空调的运行原理，是把室内的空气进行压缩，循环使用了室内空气，所以时间一长，室内空气就会污染，为了让室内干净，需要关闭空调，开窗通风一段时间，这是一个人人有责的工作，请所有同学务必轮值好！！！

jsetc-lg 2024/7/8 8:57:27
老梁 邀请您参加腾讯会议
会议主题：老梁的快速会议
会议时间：2024/07/08 08:56-09:56 (GMT+08:00) 中国标准时间 - 北京

点击链接直接加入会议：
https://meeting.tencent.com/dm/6l9dWip9yWfw

#腾讯会议：985-288-076

复制该信息，打开手机腾讯会议即可参与

jsetc-lg 2024/7/8 15:55:58
#include <iostream>
#include <variant>
#include <any>
using namespace std;

class Test
{
public:
    Test(int num, string name) : m_num(num), m_name(name)
    {

    }

    Test(const std::initializer_list<any> &li)
    {

    }

    ~Test()
    {

    }
public:
    int m_num;
    string m_name;
};

void print(variant<int,string,char> &vi)
{
    if(std::holds_alternative<int>(vi))
    {
        int num = std::get<0>(vi);
        cout << num << endl;
        cout << vi.index() << endl;
    }
    else if(std::holds_alternative<string>(vi))
    {
        string s = std::get<string>(vi);
        cout << s << endl;
    }
    else if(std::holds_alternative<char>(vi))
    {
        char ch = std::get<char>(vi);
        cout << ch << endl;
        cout << vi.index() << endl;
    }
}

int main(int argc, char **argv)
{
    variant<int,string,char> vi;
    variant<std::monostate,Test,string,int> vi2;  //第一个类型必须支持默认构造
    Test t(1,"zhangsan");
    vi2 = t;
    vi2.emplace<1>(1,"zhangsan");


    string s("hello");
    //vi = 1;
    vi.emplace<0>(1);
    print(vi);
    vi = 'a';
    print(vi);
    vi = s;
    print(vi);
    //vi = string("zhangsan");

    return 0;
}

jsetc-lg 2024/7/8 16:21:51
题目：图形面积计算

描述：设计一个基于C++面向对象编程的程序，用于计算不同类型的图形的面积。要求使用多态和模板技术。
要求：
1. 定义一个基类`Shape`，包含一个纯虚函数`area()`，用于计算图形的面积。
2. 定义两个派生类`Rectangle`和`Circle`，分别用于表示矩形和圆形。这两个类都需要实现`area()`函数。
3. 定义一个模板函数`calculateTotalArea`，接受一个`Shape`指针的容器，计算容器内所有图形的总面积。
示例：
```cpp
int main() {
    std::vector<Shape*> shapes;
    shapes.push_back(new Rectangle(3, 4));
    shapes.push_back(new Circle(5));

    double totalArea = calculateTotalArea(shapes);
    std::cout << "Total area: " << totalArea << std::endl;

    return 0;
}
```

输出：
```
Total area: 78.5398
```

集大-丁炜 2024/7/8 16:53:22
#include <iostream>
#include <vector>

class Shape {
public:
    virtual double area() = 0;
    virtual ~Shape() = default;
};

class Rectangle : public Shape
{
public:
    Rectangle(double length,double width) : width(width),length(length) { }
    double area()
    {
        return width * length;
    }
private:
    double width;
    double length;
};

class Circle : public Shape
{
public:
    Circle(double radius) : radius(radius) { }
    double area()
    {
        /*圆形面积*/
        return 3.14 * radius * radius;
    }
private:
    double radius;
};
template <typename Container>
double calculateTotalArea(Container& shapes)
{
    double totalArea = 0.0;
    for(auto ite = shapes.begin(); ite != shapes.end(); ite++)
    {
        totalArea += (*ite)->area();
    }
    return totalArea;
}
int main()
{
    std::vector<Shape*> shapes;
    shapes.push_back(new Rectangle(3, 4));
    shapes.push_back(new Circle(5));

    double totalArea = calculateTotalArea(shapes);
    std::cout << "Total area: " << totalArea << std::endl;
    return 0;
}

jsetc-lg 2024/7/8 17:20:43
// 值多态
#include<variant>
#include <iostream>
using namespace std;

constexpr double pi = 3.14;
 
struct Circle { 
    double r; };
double getArea(const Circle& c) {
    return pi * c.r * c.r;
}

double getPerimeter(const Circle& c) {
    return 2 * pi * c.r;
}

 
struct Rectangle { double w; double h; };
double getArea(const Rectangle& c) {
    return c.h * c.w;
}

double getPerimeter(const Rectangle& c) {
    return 2 * (c.h + c.w);
}

struct Square{double len;};
double getArea(const Square& c) {
    return c.len * c.len;
}

double getPerimeter(const Square& c) {
    return 2 * (c.len + c.len);
}

 
using Shape = std::variant<Circle, Rectangle, Square>;
double getArea(const Shape& c) {
    return std::visit([](const auto& data) {return getArea(data); }, c);
}

double getPerimeter(const Shape& c) {
    return std::visit([](const auto& data) {return getPerimeter(data); }, c);
}

int main() {
    Shape sp = Circle{2};
    std::cout<<getArea(sp);
 
    sp = Rectangle{2, 3};
    std::cout << getArea(sp);

    sp = Square{5};
    cout << getArea(sp);
    cout << getPerimeter(sp);
}

部落萨满加入本群。

jsetc-lg 2024/7/8 17:54:29
http://saas.aolinuoke.com/pc/ai

jsetc-lg 2024/7/8 17:56:41


 李龙 2024/7/8 23:20:16


 李龙 2024/7/8 23:20:46


范闯振 2024/7/9 23:50:44


范闯振 2024/7/9 23:50:55


jsetc-lg 2024/7/10 8:58:46
老梁 邀请您参加腾讯会议
会议主题：老梁的快速会议
会议时间：2024/07/10 08:58-09:58 (GMT+08:00) 中国标准时间 - 北京

点击链接直接加入会议：
https://meeting.tencent.com/dm/kVnb0YDTEVBv

#腾讯会议：271-759-617

复制该信息，打开手机腾讯会议即可参与

jsetc-zhang邀请jsetc-李老师加入了本群。

jsetc-lg 2024/7/10 10:09:31


jsetc-lg 2024/7/10 10:09:42


jsetc-lg 2024/7/10 10:09:52


jsetc-lg 2024/7/10 11:34:48


jsetc-lg 2024/7/10 13:36:39
老梁 邀请您参加腾讯会议
会议主题：老梁的快速会议
会议时间：2024/07/10 13:36-14:36 (GMT+08:00) 中国标准时间 - 北京

点击链接直接加入会议：
https://meeting.tencent.com/dm/Lhheju7iRLTq

#腾讯会议：660-996-046

复制该信息，打开手机腾讯会议即可参与

jsetc-lg 2024/7/10 14:27:56
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define MAX_LEN 1024

int read_line(char *buffer, int max_len, FILE *fp)
{
    char temp;
    int i;
    int ret;
    for (i = 0; i < max_len; i++)
    {
        if ((ret = fread(&temp, 1, 1, fp)) < 0)
        {
            perror("read data error!");
            return -1;
        }

        if(ret == 0)
        {
            buffer[i] = '\0';
            return 0;
        }

        if (temp == '\n')
        {
            buffer[i] = temp;
            break;
        }

        buffer[i] = temp;
    }

    buffer[i + 1] = '\0';

    return i + 1;
}

int main(int argc, char **argv)
{
    if (argc != 2)
    {
        printf("Please input filename\n");
        exit(1);
    }

    FILE *fp = NULL;
    char buffer[MAX_LEN];

    if ((fp = fopen(argv[1], "a+")) == NULL)
    {
        perror("open file error!");
        exit(1);
    }
#if 0
    for (int i = 0; i < 3; i++)
    {
        memset(buffer, 0, sizeof(buffer));
        gets(buffer);
        if (fwrite(buffer, 1, strlen(buffer), fp) < 0)
        {
            perror("write data error!");
            exit(1);
        }

        fwrite("\n", 1, 1, fp);
    }
#endif
    rewind(fp);
    memset(buffer, 0, sizeof(buffer));

    while(read_line(buffer, MAX_LEN, fp) != 0)
    {
        printf("%s", buffer);
        memset(buffer, 0, sizeof(buffer));
    }

    fclose(fp);

    return 0;
}

jsetc-zhang 2024/7/10 14:50:23
@全体成员 

jsetc-zhang 2024/7/10 14:50:25


jsetc-lg 2024/7/10 15:34:50


jsetc-lg 2024/7/10 17:54:43


Lemon 2024/7/10 23:12:10


Lemon 2024/7/10 23:12:11


Lemon 2024/7/10 23:12:12


孙海洋 2024/7/11 23:01:43


孙海洋 2024/7/11 23:01:44


孙海洋 2024/7/11 23:01:45


jsetc-lg 8:57:03
老梁 邀请您参加腾讯会议
会议主题：老梁的快速会议
会议时间：2024/07/12 08:56-09:56 (GMT+08:00) 中国标准时间 - 北京

点击链接直接加入会议：
https://meeting.tencent.com/dm/vawfExsN8YVE

#腾讯会议：947-245-001

复制该信息，打开手机腾讯会议即可参与

jsetc-lg 9:24:13
数据结构（审核）
点击课程：https://ilsra.xetlk.com/s/2vXk75
密码：jsetc666

jsetc-lg 9:24:37

1.动态数组，2.单向链表，3.双向链表，4. 栈（4.1顺序栈 4.2链式栈）5·队列 6·二叉排序树 7.平衡二叉搜索树 8.二叉堆，9哈希表

jsetc-lg 11:22:46
#include <iostream>

using namespace std;

class Add
{
public:
    virtual  double get_result(double a, double b) = 0;
};

class AddV1 : public Add
{
public:
    double get_result(double a, double b)
    {
        return a + b;
    }
};

class AddV2 : public Add
{
public:
    double get_result(double a, double b)
    {
        cout << "add:a + b = " << endl;
        return a + b;
    }
};

class Sub
{
public:
    virtual  double get_result(double a, double b) = 0;
};


class SubV1 : public Sub
{
public:
    double get_result(double a, double b)
    {
        return a - b;
    }
};

class Cal
{
public:
    Cal(Add *add, Sub *sub) : m_add(add), m_sub(sub)
    {
    }

    double get_result(string op)
    {
        if (op == "+")
        {
            return m_add->get_result(m_a, m_b);
        }
        else if (op == "-")
        {
            return m_sub->get_result(m_a, m_b);
        }
    }

    double m_a;
    double m_b;

    Add *m_add;
    Sub *m_sub;
};

int main(int argc, char **argv)
{
    double a;
    double b;
    string op;

    cin >> a;
    cin >> b;
    cin >> op;

    Add *add = new AddV2();
    Sub *sub = new SubV1();
    Cal cal(add,sub);
    cal.m_a = a;
    cal.m_b = b;

    cout << cal.get_result(op) << endl;

    return 0;
}

jsetc-lg 11:22:58
#include <iostream>

using namespace std;


class Cal
{
public:
    Cal(double a, double b) : m_a(a), m_b(b)
    {
    }
    virtual double get_result() = 0;
    double m_a;
    double m_b;
};

class Add : public Cal
{
public:
    Add(double a, double b) : Cal(a, b)
    {
    }

    virtual double get_result() override
    {
        return m_a + m_b;
    }
};

class Sub : public Cal
{
public:
    Sub(double a, double b) : Cal(a, b)
    {
    }

    virtual double get_result() override
    {
        return m_a - m_b;
    }
};

class Mul : public Cal
{
public:
    Mul(double a, double b) : Cal(a, b)
    {
    }

    virtual double get_result() override
    {
        return m_a * m_b;
    }
};

int main(int argc, char **argv)
{
    double a;
    double b;
    string op;

    cin >> a;
    cin >> b;
    cin >> op;

    Cal *cal;

    if (op == "+")
    {
        cal = new Add(a, b);
    }
    else if (op == "-")
    {
        cal = new Sub(a, b);
    }
    else if(op == "*")
    {
        cal = new Mul(a, b);
    }

    cout << cal->get_result() << endl;

    return 0;
}

